<?php
namespace lib\helper;

use lib\Tool\Tools;

/**
 * Ldy-Item-ErrorHandler
 * 未完开发中
 */
class error{

    public static function _errorBegin()
    {
        if (DE_BUG){
            error_reporting(E_ERROR | E_WARNING | E_PARSE );//表示php错误，警告，语法错误，提醒都返错。
            ini_set("display_errors", "On");//打开错误提示
            ini_set("error_reporting", ~E_NOTICE);//显示所有错误
        }
        set_error_handler('lib\helper\error::_error_handler', E_ALL || E_ERROR || E_CORE_ERROR ||E_PARSE);
        set_exception_handler('lib\helper\error::myException');
    }

    public static function _error_handler($errno, $errstr, $errfile, $errline){
        echo "错误编号errno: $errno<br>";
        echo "错误信息errstr: $errstr<br>";
        echo "出错文件errfile: $errfile<br>";
        echo "出错行号errline: $errline<br>";
    }

    public static function myException($exception){
        echo "<b>错误:My-Item-Exception:</b> ", $exception->getMessage();
    }

    /**
     * CacheRegionController 文件有待优化  本方法 等待优化
     * @param $error
     * @param bool $toJson
     */
    public static function _plainError($error,$toJson = false,$href=''){
        if (!$toJson){
            ob_start();
            $isback = true;
            if (!empty($href)) {
                $isback = false;
            }
            $errorMessage = $error['message'];
            include 'viewError.php';
            $viewError = ob_get_contents();
            ob_clean();
            echo $viewError;
        }
        if (!empty($href)){
            header("refresh:2;url=$href");die;
        }
        echo json_encode($error,true);
        die;
    }

}
